package blogs.eidos.cloud.framework.shiro.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import net.bigdata.cloud.framework.common.bean.ClientInfo;
import net.bigdata.cloud.framework.common.entity.RecordInfo;

import java.util.List;
import java.util.Set;

/**
 * 登录用户Redis对象，后台使用
 *
 * @author Eidos
 * @date 2019-9-30
 **/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class LoginUser extends RecordInfo<LoginUser> {

    @ApiModelProperty("ID")
    @TableId(value = "id")
    private Long id;

    @ApiModelProperty("用户名")
    private String userName;

    @ApiModelProperty("完整名称")
    private String fullName;

    @ApiModelProperty("昵称")
    private String nickName;

    @ApiModelProperty("用户编号")
    private String userNo;

    @ApiModelProperty("用户中心ID")
    private Long userCenterId;

    @ApiModelProperty("平台工号")
    private String userCenterNo;

    @ApiModelProperty("商户用户ID")
    private Long mchUserId;

    @ApiModelProperty("盐值")
    private String salt;

    @ApiModelProperty("生日")
    private String birthday;

    @ApiModelProperty("邮箱")
    private String email;

    @ApiModelProperty("省（数据字典CODE）")
    private String province;

    @ApiModelProperty("市（数据字典CODE）")
    private String city;

    @ApiModelProperty("区（数据字典CODE）")
    private String district;

    @ApiModelProperty("性别，0：女，1：男，默认1")
    private Integer gender;

    @ApiModelProperty("用户类型")
    private Integer type;

    @ApiModelProperty("头像地址")
    private String photo;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("当前登录租户ID")
    private Long tenantId;

    @ApiModelProperty("当前登录租户名称")
    private String tenantName;

    @ApiModelProperty("部门id")
    private Long departmentId;

    @ApiModelProperty("部门名称")
    private String departmentName;

    @ApiModelProperty("权限编码列表")
    private Set<String> permissionCodes;

    @ApiModelProperty("个人权限树")
    private List<PermissionTreeVo> sysPermissionTreeVoList;

    @ApiModelProperty("登录ip")
    private ClientInfo clientInfo;

    @ApiModelProperty("token")
    private String token;

}
